<?php


namespace App\Utils;

class VideoUtil
{
    use Singleton;

    /**
     * 下载视频
     */
    static public function download_video($videoUrl, $savePath, $fileName)
    {
        if (!is_dir($savePath)) {
            mkdir($savePath, 0777, true);
        }
        if (file_exists($savePath . '/' . $fileName)) {
            return false;
        }
        // 使用file_get_contents()方法获取视频内容
        $videoContent = file_get_contents($videoUrl);

        // 将视频内容保存到文件
        file_put_contents($savePath . '/' . $fileName, $videoContent);

        return true;
    }

    /**
    * 存储目录中的文件名
    */
    static public function save_video_name_to_txt($directory, $fileName, $basePath = null, $prefix = 'file ')
    {
        $basePath = $basePath ?: public_path('storage');
        if (!is_dir($basePath.'/'.$directory)) {
            return false;
        }
        if ($handle = opendir($basePath.'/'.$directory)) {
            // 创建txt文件
            $file = fopen($basePath.'/'.$fileName, 'w');
        
            // 遍历目录中的文件
            while (false !== ($entry = readdir($handle))) {
                // 排除当前目录和上一级目录
                if ($entry != "." && $entry != "..") {
                    // 将文件名写入txt文件
                    fwrite($file, $prefix . $directory . '/' . $entry . PHP_EOL);
                }
            }
        
            // 关闭目录和txt文件
            closedir($handle);
            fclose($file);
        } else {
            echo "无法打开目录";
        }
    }
}
